home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 23
/
Amiga Format AFCD23 (Feb 1998, Issue 107).iso
/
-seriously_amiga-
/
shareware
/
programming
/
other
/
hunk
/
hoppers
/
amigae_32a.hop
< prev
next >
Wrap
Text File
|
1997-12-01
|
5KB
|
107 lines
;*************************************************************************
;** AmigaE 3.2a Div()/Mul() function **
;** Contributor: L.Lucius Sept 23rd 1995 **
;** Modified for HOp: Thomas Richter (thor) Nov 1st 1997 **
;** Function: Modify 68000 math routines to use 68020+ instructions. **
;*************************************************************************
;*************************************************************************
;
; Div()
;
#match
#code
202F 0008 ; MOVE.L 0008(A7),D0
222F 0004 ; MOVE.L 0004(A7),D1
4A80 ; TST.L D0
6B0C ; BMI.B 0040
4A81 ; TST.L D1
6A10 ; BPL.B 0048
4481 ; NEG.L D1
610C ; BSR.B 0048
4480 ; NEG.L D0
4E75 ; RTS
4480 ; NEG.L D0
4A81 ; TST.L D1
6AF4 ; BPL.B 003A
4481 ; NEG.L D1
4841 ; SWAP D1
4A41 ; TST.W D1
6620 ; BNE.B 006E
2F03 ; MOVE.L D3,-(A7)
4841 ; SWAP D1
3601 ; MOVE.W D1,D3
3400 ; MOVE.W D0,D2
4240 ; CLR.W D0
4840 ; SWAP D0
80C3 ; DIVU.W D3,D0
2200 ; MOVE.L D0,D1
4840 ; SWAP D0
3202 ; MOVE.W D2,D1
82C3 ; DIVU.W D3,D1
3001 ; MOVE.W D1,D0
4241 ; CLR.W D1
4841 ; SWAP D1
261F ; MOVE.L (A7)+,D3
4E75 ; RTS
4841 ; SWAP D1
48E7 1800 ; MOVEM.L D3-D4,-(A7)
741F ; MOVEQ #1F,D2
7600 ; MOVEQ #00,D3
7800 ; MOVEQ #00,D4
E383 ; ASL.L #1,D3
E380 ; ASL.L #1,D0
E394 ; ROXL.L #1,D4
B881 ; CMP.L D1,D4
6504 ; BCS.B 0088
9881 ; SUB.L D1,D4
5283 ; ADDQ.L #1,D3
51CA FFF0 ; DBF D2,007A
2204 ; MOVE.L D4,D1
2003 ; MOVE.L D3,D0
4CDF 0018 ; MOVEM.L (A7)+,D3-D4
4E75 ; RTS
;
;
#replace
202F 0008 ; MOVE.L 0008(A7),D0
4C6F 0800 0004 ; DIVS.L 0004(A7),D0
4E75 ; RTS
#end
;*************************************************************************
;
; Mul()
;
#match
#code
2643 ; MOVEA.L D3,A3
222F 0004 ; MOVE.L 0004(A7),D1
202F 0008 ; MOVE.L 0008(A7),D0
2400 ; MOVE.L D0,D2
2600 ; MOVE.L D0,D3
C0C1 ; MULU.W D1,D0
4843 ; SWAP D3
C6C1 ; MULU.W D1,D3
4843 ; SWAP D3
4243 ; CLR.W D3
D083 ; ADD.L D3,D0
4841 ; SWAP D1
C4C1 ; MULU.W D1,D2
4842 ; SWAP D2
4242 ; CLR.W D2
D082 ; ADD.L D2,D0
260B ; MOVE.L A3,D3
4E75 ; RTS
;
;
#replace
202F 0008 ; MOVE.L 0008(A7),D0
4C2F 0000 0004 ; MULS.L 0004(A7),D0
4E75 ; RTS
#end